using System;
using System.Collections.Generic;
using System.Text;

using MyAI.NeuralNetworkLib.Specification;

namespace MyAI.NeuralNetworkLib.Implementation
{
    public class NeuralLayerFactory : INeuralLayerFactory
    {
        #region Vars
        private static NeuralLayerFactory _instance = null;
        #endregion

        #region Constructor
        private NeuralLayerFactory()
        { 
        
        }
        #endregion

        #region Instance
        public static NeuralLayerFactory Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new NeuralLayerFactory();
                }
                return _instance;
            }
        }
        #endregion

        #region INeuralLayerFactory Members

        public INeuralLayer CreateLayer(NeuralLayerTypes type)
        {
            switch(type)
            {
                case NeuralLayerTypes.SimpleLayer:
                    return new SimpleLayer();
                default:
                    return new SimpleLayer();
            }
        }

        #endregion
    }
}
